/**
 * Copyright (C) 2012-2013 jumei, Inc.
 * DefaultServiceConfigure.java
 * 2015年6月24日
 */
package com.goface.rpc.conf;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;

/**
 * 默认的配置管理中心，所有服务的配置放置在内存之中
 *
 * @author jm110
 */
public class DefaultServiceConfigureCenter implements ServiceConfigureCenter {
    private static DefaultServiceConfigureCenter serviceConfigureCenter = new DefaultServiceConfigureCenter();

    private DefaultServiceConfigureCenter() {

    }

    public static DefaultServiceConfigureCenter getInstance() {
        return serviceConfigureCenter;
    }

    private Map<String, ServiceConfigure> serviceConfigures = new HashMap<>();

    /*
     * (non-Javadoc)
     *
     * @see org.goface.rpc.ServiceConfigure#getProperties(java.lang.String)
     */

    public ServiceConfigure getServiceConfigure(String serviceId) {
        return serviceConfigures.get(serviceId);
    }

    public void addServiceconfigure(String id, ServiceConfigure configure) {
        serviceConfigures.put(id, configure);
        // TODO： 这里检查配置是否完整，并且设置相关配置的默认值 configure

    }

    /*
     * (non-Javadoc)
     *
     * @see com.goface.rpc.conf.Rfreshable#refresh()
     */
    @Override
    public void refresh() {

    }

    /*
     * (non-Javadoc)
     *
     * @see com.goface.rpc.conf.ServiceConfigureCenter#getAllServiceConfigure()
     */
    @Override
    public Collection<ServiceConfigure> getAllServiceConfigure() {
        return serviceConfigures.values();
    }

}
